perm filename LISP.NOT[W78,JMC] blob
sn#339348 filedate 1978-03-05 generic text, type C, neo UTF8
COMMENT ā VALID 00003 PAGES
C REC PAGE DESCRIPTION
C00001 00001
C00002 00002 ANSWERS TO FORMAL QUESTIONS
C00019 00003 1. The ambition of the applications was limited by the memory
C00020 ENDMK
Cā;
ANSWERS TO FORMAL QUESTIONS
BACKGROUND
When the M.I.T. Artificial Intelligence Project was started,
we, McCarthy and Minsky, took it for granted that we would do
a programming language based on earlier studies. There was never
any formal decision to do it.
1. a. The AI Project was a part of the M.I.T. Research Laboratory
of Electronics. The M.I.T. Computation Center also was involved. I
believe it paid part of my salary.
b. There was no opposition.
c. The RLE money came from a Joint Services contract.
d. Nat Rochester was a visiting professor. Marvin Minsky,
an assistant professor, concentrated on AI applications. McCarthy,
an assistant professor, led the LISP work.
S.R. Russell, Klim Maling, and Dan Edwards worked as programmers.
All others were graduate students in mathematics and electrical
engineering.
e. As part of a research project. There was not a formal
separation between people working on LISP and working on AI programs
using LISP, although in practice, most people did one or the other.
f. McCarthy initiated the LISP work and remained the leader of
it.
g. No.
h. No.
i. The language was designed simultaneously with implementation.
However, McCarthy did much more design than implementation, and the
ratio was reversed for everyone else.
j. Yes. Hard to say.
2. a. No. The hiring of specific personnel was requested from
RLE, but it wasn't specified that they would work on LISP.
b. No.
c. Through the implementation of LISP 1.5, perhaps 10 man years
were put in. Design 2, implementation 7.5, documentation .5.
d. I don't have any record of the salaries paid or the costs
that should be allocated for computer time used. If there is a general
formula for project cost as a function of manpower at that time, it
would probably apply.
e. No effect.
3. a. It was known there would have to be a programmer's manual
and a scientific paper.
The modern pomposity concerning documentation had not yet developed.
b. A programmer's manual, a paper in CACM,
and comments in the code according to the taste of the programmers.
c.
4. a. FORTRAN from experience and IPL 2 by reputation.
b. Background.
c. Both had a substantial influence. That it would be
algebraic in style came from FORTRAN and that its content would
be list processing came from IPL 2.
d. No.
5. a. Artificial intelligence including especially tree-searching
and theorem proving. Computation with algebraic expressions was also
a motivation.
b. Researchers including graduate students.
c. The IBM 704 and a hypothetical machine-in-the-sky with
a much larger memory.
d. Only a batch system was available, but interactive use
was hoped for from the beginning. I can't remember that the hope
for interactive use affected decisions, although the design of the
language wherein the way of getting a program executed is to make
a function call turned out to be ideally suited to interactive
programming.
6. a. John McCArthy
b. AI research
RATIONALE OF CONTENT OF LANGUAGE
1. a. Big programs were expected, but I don't recall that this
affected early decisions. Programs written by many people were also
expected.
b. Program libraries were considered essential, and no provision
was made for them.
c. Portability wasn't considered, but mathematical elegance was,
and this ensured portability. The goal of mathematical elegance was
not full attained. There should have been another iteration of source
language design after it became clear that S-expressions would be the
main representation of programs as well as data.
d. Ease of training was not considered. It was recognized early
that too many parentheses would be a nuisance in writing programs
correctly, and it was intended to fix this as has been done in external
notation. Many people have difficulty in thinking in the top-down
manner required for writing recursive function definitions; this leads
to a FORTRAN-like programming style that is deplored.
e. It was felt that the largest computers were none too big,
and efforts at efficiency were made. Implementation on small computers
were made by many people subsequently, and, so far as I know, they all
turned out to be toys. I can't think of any serious AI research
done in LISP on a small computer. This is an absolute matter not relative;
i.e.good AI research is done on computers that are not large by today's
standards.
f. Originally the architecture of the IBM 704 had a substantial
effect on the design of LISP. However, the really machine-dependent
features were removed early - leaving only their names, i.e. CAR and
CDR in their reference to the address and decrement parts of the 704
word. In may respects we were lucky in that machine dependence
disappeared so easily.
g. Compilation came late and affected design only in the
up-level addressing features.
h. Mathematical elegance affects ease of programming. I don't
recall maintainability being given explicit consideration.
i. I don't recall environment affecting decisions.
j. We were stuck with the IBM 026 key punch, but we wanted
a full mathematical character set. This led to using written words
for all operations, because the operations we were give were such
a small subset of our desires.
k. Yes. Implementation and design proceeded together, except that
many of the design ideas had been developed by McCarthy before there
was even a prospect of implementation.
l. LISP has never been subjected to standardization, except that
A.C Hearn has developed a "standard LISP" that operates on the PDP-10,
IBM 370 and some other computers.
2. a. See body of the paper.
b. I dunno.
c. Dunno.
d. Dunno.
3. a. Only occasional thought.
b. Mathematical simplicity in the hope of being able to
prove programs correct.
c. Writing programs as collections of independent functions
contributed to understandablility, but this had other motivations.
d. Data types came first.
e. Philosophy came later.
4. a. No language definition techniques were known at the time,
but abstract syntax was somewhat motivated by the LISP.
b. No.
5. a. Many of the features of LISP, e.g. conditional expressions
and algebraic functions for taking apart expressions and putting them
together were invented before the possibility of implementation arose.
b. There were new concepts, but there were also practical
motivations.
c. The need of explicit facilities for conditional expressions
and recursion were recognized because of experience with FORTRAN.
6. a. No known influence except post facto, i.e. redesign was
not undertaken for lack of energy.
b. Dunno except that a larger group would have been uncontrollable
with the existing management ability and my other objectives.
c. Can't think of any.
A POSTERIORI EVALUATION
1. a. It was intended to have more of a monument to the Advice-Taker
concept of object, and this would have meant some kind of hash-structured
property list. This concept never jelled well enough to be implemented.
An external form was planned from the beginning, and this also never
jelled.
b. None of the users remembers much about the original objectives
which were never explicit anyway.
c. The computing community has various opinions of LISP as a
language but probably has no opinion, right or wrong, of what its original
objectives were.
d. More other list-processing languages were implemented on
machines where LISP appeared late.
e. Yes.
2. a. It has provided a practical language for AI programming
and a mathematical structure that has stimulated much research
in mathematical theory of computation.
b. I am most pleased that the language has eventually turned
out quite suitable for proofs of correctness.
c. Many. LISP has never had explicit
promotion from companies or the government or committees of the profession.
At various times and places, it has had a certain snob appeal, however.
d. Yes. On the PDP-10 as discussed by Bell, et. al. in recent
CACM article.
e. Yes. Many.
f. The main ideas were inevitable. It was good that they arose
together so early in the history of computing.
g. Expressing programs as functions defined recursively using
conditional expressions is a major contribution of LISP. In my opinion,
this means of programming is still insufficiently available in most
programming languages and will eventually be part of every general
purpose language. Garbage collection became popular in connection
with LISP, but it would be hard to assert that it hadn't been used
previously in specific programs.
3. a. Insufficient care was taken in the internal form of programs.
The COND form of conditional should have been replaced by (IF P A B)
as McIntosh later proposed. Unfortunately, this change hasn't caught on.
Identifying NIL, false and 0 was also a mistake, but many programs
rely on it.
b. The options for handling free variables should be done
differently, but I can't be specific even now.
c. The M.I.T. people wrongly reversed the order of arguments
in MAPLIST and friends. Incorporating an editor package was a good
idea, but the discrepancy between the way LISP gets at substructures
and the way the editor does it is regrettable.
d. Dozens of changes have been suggested, but there is no
central body to accept or reject them.
4. a. How to do erasure was one of the major explicit problems.
It was solved by garbage collection. How to handle numbers was partially
solved. How to do syntax directed computation hasn't yet been solved,
and the problem of free variables has many solutions - all with
disadvantages.
b. Parentheses.
c. Implementers have tended to get over ambitious and to
take too long.
d. There is a trade-off between representing symbolic information
compactly by character strings familiar to humans as opposed to representing
it by list structure. I think LISP made the right decision for AI.
e. None that I can think of.
IMPLICATIONS FOR CURRENT AND FUTURE LANGUAGES
1. a. All the features listed in the second paragraph of the paper
have and will influence other languages.
b. Mathematical neatness and practicality need to be considered
together.
c. I think LISP occupies a local optimum in the space of languages,
and it still has no serious competitor.
2. a. It is hard to tell direct from indirect influences.
1. The ambition of the applications was limited by the memory
capacity of the machines. While LISP has survived substantially intact
since 1960, no LISP system developed prior to the late 1960s has
survived. In fact, most of the early programs were rather trivial.
2. The survival of LISP represents the demise of the would-be
replacements.